package com.company.nuwa.redis.support.limit;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * <p>redis limiter</p >
 *
 * @author Nikola Tesla
 * @version 1.0
 * @date 2021/1/12 14:04
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface RedisLimit {

    /**
     * 限流key
     * <p>
     * 支持Spring EL表达式
     *
     * @return
     */
    String key();

    /**
     * rate
     *
     * @return
     */
    long rate() default 1;

    /**
     * rate time interval
     * <p>
     * 单位毫秒
     *
     * @return
     */
    long rateInterval() default 1000;

}
